草庐IT

java - HashMap:以随机顺序迭代键值对

全部标签

Ruby - 将数组映射到 HashMap

我有一个数组和一个返回给定值的值的函数。最终我想创建一个hashmap,它将数组的值作为键值,并将f(key_value)的结果作为值。是否有一种干净、简单的方法,类似于数组的每个/映射,使用block来执行此操作?等价于hsh={}[1,2,3,4].eachdo|x|hsh[x]=f(x)end但看起来更像这个,因为它很简单而且只有一行?results=array.map{|x|f(x)} 最佳答案 请注意,从Ruby2.1.0开始,您还可以使用Array#to_h,像这样:[1,2,3,4].map{|x|[x,f(x)]}.

ruby - 跳过 Enumerable 中的迭代#collect

(1..4).collectdo|x|nextifx==3x+1end#=>[2,3,nil,5]#desired=>[2,3,5]如果满足next的条件,collect会将nil放入数组中,而我想要做的是将没有元素。这是否可以不调用delete_if{|x|x==nil}在返回的数组上?我的代码摘录非常抽象,因此正在寻找问题的通用解决方案。 最佳答案 有方法Enumerable#reject这只是为了:(1..4).reject{|x|x==3}.collect{|x|x+1}直接使用一种方法的输出作为另一种方法的输入的做法称为方

ruby - 如何按字母顺序对字符串的字符进行排序?

对于Array,有一个漂亮的sort方法来重新排列元素的顺序。我想为字符串实现相同的结果。例如,我有一个字符串str="String",我想用一种简单的方法将它按字母顺序排序为"ginrSt"。是否有一种本地方法可以启用此功能,或者我应该包含来自Enumerable的mixin? 最佳答案 charsmethod返回字符串字符的枚举。str.chars.sort.join#=>"Sginrt"不区分大小写排序:str.chars.sort(&:casecmp).join#=>"ginrSt"

ruby - 如何在 ruby​​ 中生成一个随机的 10 位数字?

此外,如何将其格式化为用零填充的字符串? 最佳答案 用表达式“10的10次方”的结果生成数字调用randrand(10**10)要用零填充数字,您可以使用字符串格式运算符'%010d'%rand(10**10)或者字符串的rjust方法rand(10**10).to_s.rjust(10,'0') 关于ruby-如何在ruby​​中生成一个随机的10位数字?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

ruby - 如何在 Ruby 循环的第一次迭代中采取不同的行动?

我总是使用计数器来检查循环中的第一项(i==0):i=0my_array.eachdo|item|ifi==0#dosomethingwiththefirstitemend#commonstuffi+=1end是否有更优雅的方式来做到这一点(也许是一种方法)? 最佳答案 你可以这样做:my_array.each_with_indexdo|item,index|ifindex==0#dosomethingwiththefirstitemend#commonstuffend试试ideone.

ruby - 在 Ruby 中使用 << 将键/值对附加到散列

在Ruby中,可以使用将值附加到现有数组a=[]a但是,您还可以将键/值对附加到现有哈希吗?h={}h我知道你能做到:h[:key]=""h[:key]但这不是我想要的。谢谢。 最佳答案 有merge!.h={}h.merge!(key:"bar")#=>{:key=>"bar"} 关于ruby-在Ruby中使用 https://stackoverflow.com/questions/19756139/

java——百钱买百鸡

目录任务1、解决百钱买百鸡问题问题:需求:思路:任务1、解决百钱买百鸡问题问题:我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?需要定义三个整型变量cock,hen,chick,分别代表公鸡、母鸡和小鸡的购买数量。有两方面的条件:关于钱的条件与关于鸡的条件需求:我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买

ruby - 检查两个数组是否具有相同的内容(以任何顺序)

我将Ruby1.8.6与Rails1.2.3结合使用,需要确定两个数组是否具有相同的元素,无论它们的顺序是否相同。其中一个数组保证不包含重复项(另一个可能,在这种情况下答案是否定的)。我的第一个想法是require'set'a.to_set==b.to_set但我想知道是否有更有效或更惯用的方法。 最佳答案 这不需要转换来设置:a.sort==b.sort 关于ruby-检查两个数组是否具有相同的内容(以任何顺序),我们在StackOverflow上找到一个类似的问题:

ruby - 在 Ruby 中迭代数组时如何修改它?

我只是在学习Ruby,如果这对这里来说太新手了,我深表歉意,但我无法从镐书中解决这个问题(可能只是阅读不够仔细)。无论如何,如果我有这样的数组:arr=[1,2,3,4,5]...我想将数组中的每个值乘以3,我已经计算出执行以下操作:arr.each{|item|item*=3}...不会得到我想要的东西(我明白为什么,我没有修改数组本身)。我不明白的是如何从迭代器之后的代码块内部修改原始数组。我相信这很容易。 最佳答案 使用map从旧数组创建新数组:arr2=arr.map{|item|item*3}使用map!就地修改数组:ar

ruby - Ruby 中的 java 接口(interface)等价物是什么?

我们能否像在java中那样在Ruby中公开接口(interface),并强制Ruby模块或类实现接口(interface)定义的方法。一种方法是使用继承和method_missing来实现相同的目的,但是还有其他更合适的方法吗? 最佳答案 Ruby与任何其他语言一样具有接口(interface)。请注意,您必须注意不要将接口(interface)的概念与interface的概念混淆,接口(interface)是一个单元的职责、保证和协议(protocol)的抽象规范。这是Java、C#和VB.NET编程语言中的关键字。在Ruby中,